import  pygame
from game_items import *
from game_hub import  *
from game_music import *
class Game(object):
    ''' 游戏类 '''
    def __init__(self):
        # 游戏窗口
        self.main_window = pygame.display.set_mode(SCREEN_RECT.size)
        pygame.display.set_caption("韩狗大战")
        # 游戏状态窗口
        self.is_game_over = False
        self.is_pause = False



        #精灵组属性
        self.all_group = pygame.sprite.Group()          #所有精灵组
        self.enemies_group = pygame.sprite.Group()      #敌对精灵组
        self.supplies_group = pygame.sprite.Group()     #道具精灵组
        #创建精灵
        #背景精灵,向下方移动
        GameSprite("background.png",1,self.all_group)
        # 背景精灵，交替滚动
        self.all_group.add(Background(False), Background(True))
        #英雄精灵,静止不动
        hero = GameSprite("me1.png",0,self.all_group)
        hero.rect.center = SCREEN_RECT.center           #显示在屏幕中间





    def reset_game(self):
        '''  重置游戏 '''
        self.is_game_over = False
        self.is_pause = False


    def event_handler(self):
        '''事件监听
        :return:如果监听到退出事件,返回True,否则返回False
        '''
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return True
            elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
                if self.is_game_over:            #游戏已经结束
                    self.reset_game()               #重新开始游戏
                else:
                    self.is_pause = not self.is_pause       #切换暂停状态

        return False

    def start(self):
        ''' 开始游戏'''

        clock = pygame.time.Clock()                 #游戏时钟
        while True:
            if self.event_handler():                #事件监听
                return
            #判断游戏状态
            if self.is_game_over:
                print('游戏已经结束，按空格键重新开始...')
            elif self.is_pause:
                print('游戏已经暂停，按空格继续...')
            else:
                # 更新 all_group 中所有精灵内容
                self.all_group.update()
            # 绘制all_group中的精灵
            self.all_group.draw(self.main_window)
            pygame.display.update()                 #更新显示
            clock.tick(60)                          #设置刷新帧率


if __name__ == '__main__':
    pygame.init()
    Game().start()
    pygame.quit()